/**
 *      __            ____
 *     / /__ _  __   / __/                      __  
 *    / //_/(_)/ /_ / /  ___   ____ ___  __ __ / /_ 
 *   / ,<  / // __/_\ \ / _ \ / __// _ \/ // // __/ 
 *  /_/|_|/_/ \__//___// .__//_/   \___/\_,_/ \__/  
 *                    /_/   github.com/KitSprout    
 * 
 *  @file    font.c
 *  @author  KitSprout
 *  @brief   
 * 
 */

/* Includes --------------------------------------------------------------------------------*/
#include <stdint.h>

/* Define ----------------------------------------------------------------------------------*/
/* Macro -----------------------------------------------------------------------------------*/
/* Typedef ---------------------------------------------------------------------------------*/
/* Variables -------------------------------------------------------------------------------*/

const uint8_t font8x6[][6*1] =
{
    // '0'
    0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
    // '1'
    0x00, 0x42, 0x41, 0x7F, 0x40, 0x40,
    // '2'
    0x00, 0x42, 0x61, 0x51, 0x49, 0x46,
    // '3'
    0x00, 0x41, 0x49, 0x49, 0x36, 0x00,
    // '4'
    0x18, 0x14, 0x12, 0x11, 0x7F, 0x10,
    // '5'
    0x00, 0x4F, 0x49, 0x49, 0x31, 0x00,
    // '6'
    0x00, 0x3E, 0x4B, 0x49, 0x49, 0x30,
    // '7'
    0x00, 0x01, 0x41, 0x31, 0x0D, 0x03,
    // '8'
    0x00, 0x36, 0x4D, 0x49, 0x59, 0x36,
    // '9'
    0x00, 0x46, 0x49, 0x49, 0x29, 0x1E,
    // 'A'
    0x00, 0x70, 0x1E, 0x11, 0x1E, 0x70,
    // 'B'
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,
    // 'E'
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x00,
    // 'F'
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x00,
    // 'R'
    0x00, 0x7F, 0x09, 0x19, 0x26, 0x40,
    // 'T'
    0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,
    // 'v'
    0x00, 0x0E, 0x30, 0x40, 0x30, 0x0E,
    // ' '
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    // '.'
    0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
};



const uint8_t font16x11[][11*2] =
{
    // '0'
    0x00, 0xF8, 0xFC, 0x8E, 0xC3, 0xC3, 0x63, 0x63, 0x3E, 0xFE, 0xF8,
    0x00, 0x03, 0x0F, 0x0F, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x07, 0x03,
    // '1'
    0x00, 0x00, 0x0C, 0x06, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x00,
    // '2'
    0x00, 0x00, 0x02, 0x06, 0x03, 0x03, 0x83, 0xC7, 0x7E, 0x3C, 0x00,
    0x00, 0x00, 0x18, 0x1C, 0x1E, 0x1B, 0x19, 0x18, 0x18, 0x18, 0x18,
    // '3'
    0x00, 0x00, 0x06, 0x03, 0x63, 0x63, 0x63, 0x73, 0xDE, 0xDE, 0x80,
    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x0F, 0x07,
    // '4'
    0x80, 0xC0, 0x60, 0x30, 0x1C, 0x06, 0x03, 0xFF, 0xFF, 0x00, 0x00,
    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x1F, 0x1F, 0x03, 0x03,
    // '5'
    0x00, 0x00, 0x7F, 0x7F, 0x63, 0x63, 0x63, 0xE3, 0xC3, 0x80, 0x00,
    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x0F, 0x07, 0x00,
    // '6'
    0x00, 0xF0, 0xFC, 0xCE, 0x66, 0x63, 0x63, 0xE3, 0xC3, 0x80, 0x00,
    0x00, 0x03, 0x0F, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x0F, 0x07, 0x00,
    // '7'
    0x00, 0x03, 0x03, 0x03, 0x03, 0x83, 0xE3, 0x7B, 0x1F, 0x07, 0x00,
    0x00, 0x00, 0x00, 0x18, 0x1E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
    // '8'
    0x00, 0x1C, 0x9E, 0xF3, 0x63, 0x63, 0xE3, 0xF3, 0x9E, 0x0E, 0x00,
    0x00, 0x07, 0x0F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0F, 0x07, 0x00,
    // '9'
    0x00, 0x3C, 0x7E, 0xE7, 0xC3, 0xC3, 0xC3, 0x67, 0xFE, 0xF8, 0x00,
    0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x0E, 0x07, 0x01, 0x00,
    // 'v'
    0x00, 0x00, 0x38, 0xF8, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0xF8, 0x18,
    0x00, 0x00, 0x00, 0x00, 0x07, 0x1E, 0x10, 0x1E, 0x03, 0x00, 0x00,
    // ' '
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    // '.'
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00,
};

const uint8_t font24x16[][16*3] = 
{
    // '0'
    0xC0, 0xF8, 0xFC, 0x3E, 0x0E, 0x07, 0x03, 0x03, 0x03, 0x87, 0x8E, 0xFE, 0xFC, 0xF8, 0xC0, 0x00,
    0x3F, 0xFF, 0xFF, 0xF0, 0x18, 0x1C, 0x0C, 0x06, 0x03, 0x03, 0x01, 0xC0, 0xFF, 0xFF, 0x3F, 0x00,
    0x00, 0x01, 0x03, 0x07, 0x07, 0x0E, 0x0C, 0x0C, 0x0C, 0x0E, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00,
    // '1'
    0x00, 0x10, 0x38, 0x1C, 0x0C, 0x06, 0x02, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00,
    // '2'
    0x00, 0x04, 0x0E, 0x06, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0F, 0xFE, 0xFC, 0xF8, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0x78, 0x3C, 0x1F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00,
    0x00, 0x0C, 0x0E, 0x0F, 0x0F, 0x0D, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00,
    // '3'
    0x00, 0x00, 0x00, 0x06, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x87, 0xFE, 0xFE, 0x78, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x07, 0x0F, 0x1D, 0xFD, 0xF8, 0xF0, 0x00,
    0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, 0x07, 0x03, 0x03, 0x00, 0x00,
    // '4'
    0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0x7C, 0x1E, 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
    0xE0, 0xF0, 0xFC, 0xDF, 0xC7, 0xC3, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00,
    // '5'
    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
    0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0E, 0xFE, 0xFC, 0xF8, 0x00,
    0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00,
    // '6'
    0x00, 0x80, 0xF0, 0xF8, 0x3C, 0x0E, 0x06, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
    0x00, 0x7F, 0xFF, 0xFF, 0x86, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0F, 0xFE, 0xFC, 0xF8, 0x00,
    0x00, 0x00, 0x01, 0x07, 0x07, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x07, 0x07, 0x03, 0x00, 0x00,
    // '7'
    0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0xE3, 0xFB, 0x7F, 0x1F, 0x07, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0x7E, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x08, 0x0E, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    // '8'
    0x00, 0x78, 0xFC, 0xFE, 0xC6, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC7, 0xFE, 0xFE, 0x78, 0x00,
    0x00, 0xE0, 0xF0, 0xF9, 0x1F, 0x0F, 0x0F, 0x06, 0x06, 0x0F, 0x0F, 0x1F, 0xF9, 0xF0, 0xE0, 0x00,
    0x00, 0x01, 0x03, 0x07, 0x0E, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0E, 0x06, 0x07, 0x03, 0x01, 0x00,
    // '9'   
    0x00, 0xF0, 0xFC, 0xFE, 0x0E, 0x07, 0x03, 0x03, 0x03, 0x03, 0x07, 0x1E, 0xFC, 0xF8, 0xE0, 0x00,
    0x00, 0x01, 0x03, 0x07, 0x0F, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x8C, 0xC6, 0xFF, 0xFF, 0x1F, 0x00,
    0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00,
    // 'v'
    0x00, 0x70, 0xF0, 0xF0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF0, 0x30,
    0x00, 0x00, 0x01, 0x0F, 0x3F, 0xFE, 0xF0, 0x80, 0x00, 0x80, 0xF0, 0xFE, 0x3F, 0x07, 0x01, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0F, 0x0C, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
    // ' '
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    // '.'
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};


/* Prototypes ------------------------------------------------------------------------------*/
/* Functions -------------------------------------------------------------------------------*/

/*************************************** END OF FILE ****************************************/
